In recent years, the use of smaller, inexpensive laser printers with personal computers has created an entirely new industry referred to as desktop publishing. Desktop publishing systems offer users the ability to format and print documents having complicated layouts using characters that have a variety of different fonts and type sizes. While desktop publishing systems represent a significant advance in the art of publishing, the standard resolution of the laser printers used with such systems (typically a 300.times.300 dots per inch (dpi) Canon CX or SX-based laser printer, e.g. a Hewlett Packard LaserJet Series II printer) was too poor to compete with traditional phototypesetting systems.
In an effort to improve the quality and speed of the smaller, inexpensive laser printers used with desktop publishing systems, a variety of printer controller cards have been introduced that may be installed either in the laser printer or in the personal computer. Certain of the printer controller cards that are installed directly in the personal computer increase the quality and speed of the laser printers by using a separate co-processor and page frame buffer to create a pixel representation of the image to be printed on the laser printer. This image is then printed from the pixel representation in the page frame buffer by directly controlling the modulation of the laser in the print-engine of the laser printer. An example of such a printer control card is the LX6 Professional printer controller cards available from LaserMaster Corporation, Eden Prairie, Minn., the assignee of the present invention.
In some of the prior art printer controller cards, such as the LX6 Professional, it is possible to increase the horizontal resolution of the laser printer by controlling the modulation of the laser in the print-engine of the laser printer. By doing so, the LX6 Professional printer controller cards can increase the horizontal component of the pixel resolution of the laser printer to 600.times.300 dpi or 1000.times.400 dpi, depending upon the type of laser printer. This increase in horizontal resolution significantly improves the quality of the resulting printed image, particularly for pixel transition points along the outline edges of a character or image that occur in the vertical or near vertical orientation. Unfortunately, the increased horizontal resolution does little to improve the quality of the outline edges of a character or image that are near horizontal in slope.
The noticeability and appearance of such vertical pixel transition points is typically referred to as aliasing that results in jagged or stairstep edges of the character or image outline oriented generally in the horizontal direction. Traditionally, anti-aliasing techniques incorporating a gray-scale approach have been used in video displays to resolve this type of problem. Unfortunately, laser printers are binary imaging devices and are not capable of implementing such gray-scale techniques. In larger and more expensive laser printers, the problems associated with aliasing and non-smooth edges may be resolved by using higher pixel resolutions in these printers. In the smaller, inexpensive laser printers used, for example, with desktop publishing systems, this approach is not used because of the associated increase in cost.
In accordance with the parent application of the present invention, a non-gray scale anti-aliasing method for smoothing the horizontal components of the edges of an image to be printed by a laser printer having unequal pixel resolutions in the horizontal and vertical dimensions is described. The method was specifically described for use by a processor that is provided with an ideal outline of the image and then rasterizes the ideal outline of the image using the processor for determining which pixels to turn on and which pixels to turn off in a frame buffer that stores a pixel representation of the image to be printed by the laser printer. The smoothing is accomplished by selectively modifying the one and off states of pixels on either side of each vertical transition point along the horizontal components of raster lines representing the edges of the pixel representation of the image.
It will be recognized that the pixel representation created in the frame buffer for each horizontal raster line is used to control the laser in the laser printer. When the laser is turned on in response to an "on" pixel, a generally circular laser beam image is reflected on the print drum of the print engine to transfer charge elements to the drum. The charge elements attract and pick up toner that is then transferred to a sheet of paper. Although the pixel elements are thought of as square or rectangular shapes, in actuality, the edges of the pixels typically bleed into one another.
In essence, the parent application for the present invention taught that the vertical transition points in the horizontal raster lines could be smoothed by selectively adding and subtracting pixels around the transition points. In the preferred embodiment of the parent application, the smoothing of the horizontal components of the edges of the ideal outline is accomplished during the rasterization fill process for each horizontal raster line. As each line is rasterized, the processor accumulates a running fill value that represents the area of each pixel inside the ideal outline that should be turned "on" or filled. If the processor determines that the area of the fill value is greater than the area of a pixel, the pixel presently being processed is turned "on" and the area of a pixel is subtracted from the fill value. In this embodiment, the fill value acts like a running accumulator with the carry out of the accumulator being used to determine whether the pixel presently being processed should be turned "on".
The use of the preferred technique taught by the parent application is effective in smoothing vertical transition points of images to be printed on many different types of laser printers. However, it has been found that differences in the print engines among laser printers can result in varying degrees of smoothness of vertical transition points using the particular technique of accumulating the area of each pixel inside the ideal outline to determine whether to selectively turn "on" a particular pixel. It is believed that the success in smoothing vertical transition points is affected by the response of the laser printer to the video control signal that modulates the laser.
For example, the fact that different types of print engines have uniquely different sizes, shapes and power densities associated with their laser beam spot images can affect the way in which toner will be deposited on the drum in response to a particular video control signal. For certain print engines, the buildup of toner from the bottom to the top of a raster line in response to a control signal will behave in a generally linear fashion as the duty cycle of the control signal is increased. In other print engines, the buildup of toner from the bottom to the top of a raster line will behave in a more non-linear fashion in response to the duty cycle of the control signal.
Unfortunately, the preferred technique of accumulating a fill value taught by the parent application is limited in its ability to compensate for the differences in how toner is deposited in response to the video control signals in different laser printers. Accordingly, it would be desirable to provide for new techniques for adapting the non-gray scale anti-aliasing method of the parent application to a wide variety of laser printers having different ways in which toner will be deposited in response to a control signal, especially those laser printers where the buildup of toner from the bottom to the top of a raster line behaves in a non-linear fashion in response to the duty cycle of the control signal.